#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
文件中转站启动脚本
提供简单的启动方式和配置选项
"""

import os
import sys
import argparse
from app import app

def main():
    """主启动函数"""
    parser = argparse.ArgumentParser(description='文件中转站 Web 应用')
    parser.add_argument('--host', default='0.0.0.0', help='服务器主机地址 (默认: 0.0.0.0)')
    parser.add_argument('--port', type=int, default=5000, help='服务器端口号 (默认: 5000)')
    parser.add_argument('--debug', action='store_true', help='启用调试模式')
    parser.add_argument('--upload-dir', default='uploads', help='文件上传目录 (默认: uploads)')
    
    args = parser.parse_args()
    
    # 设置上传目录
    app.config['UPLOAD_FOLDER'] = args.upload_dir
    
    # 确保上传目录存在
    if not os.path.exists(args.upload_dir):
        os.makedirs(args.upload_dir)
        print(f"✅ 已创建上传目录: {os.path.abspath(args.upload_dir)}")
    
    # 显示启动信息
    print("=" * 50)
    print("🚀 文件中转站正在启动...")
    print("=" * 50)
    print(f"📁 上传目录: {os.path.abspath(args.upload_dir)}")
    print(f"🌐 服务地址: http://{args.host}:{args.port}")
    print(f"🔧 调试模式: {'开启' if args.debug else '关闭'}")
    print("=" * 50)
    print("💡 使用说明:")
    print("   - 在浏览器中访问上述地址")
    print("   - 支持拖拽上传和点击选择文件")
    print("   - 支持文件下载、删除和搜索")
    print("   - 按 Ctrl+C 停止服务")
    print("=" * 50)
    
    try:
        # 启动Flask应用
        app.run(
            host=args.host,
            port=args.port,
            debug=args.debug,
            threaded=True
        )
    except KeyboardInterrupt:
        print("\n👋 文件中转站已停止运行")
        sys.exit(0)
    except Exception as e:
        print(f"❌ 启动失败: {e}")
        sys.exit(1)

if __name__ == '__main__':
    main()